.dh-input {
    --dh-input-text-color: var(--dh-text-color-regular);
    --dh-input-border: var(--dh-border);
    --dh-input-hover-border: var(--dh-border-color-hover);
    --dh-input-focus-border: var(--dh-color-primary);
    --dh-input-transparent-border: 0 0 0 1px transparent inset;
    --dh-input-border-color: var(--dh-border-color);
    --dh-input-border-radius: var(--dh-border-radius-base);
    --dh-input-bg-color: var(--dh-fill-color-blank);
    --dh-input-icon-color: var(--dh-text-color-placeholder);
    --dh-input-placeholder-color: var(--dh-text-color-placeholder);
    --dh-input-hover-border-color: var(--dh-border-color-hover);
    --dh-input-clear-hover-color: var(--dh-text-color-secondary);
    --dh-input-focus-border-color: var(--dh-color-primary);
  }
  
  .dh-input {
    --dh-input-height: var(--dh-component-size);
    position: relative;
    font-size: var(--dh-font-size-base);
    display: inline-flex;
    width: 100%;
    line-height: var(--dh-input-height);
    box-sizing: border-box;
    vertical-align: middle;
    &.is-disabled {
      cursor: not-allowed;
      .dh-input__wrapper {
        background-color: var(--dh-disabled-bg-color);
        box-shadow: 0 0 0 1px var(--dh-disabled-border-color) inset;
      }
      .dh-input__inner {
        color: var(--dh-disabled-text-color);
        -webkit-text-fill-color: var(--dh-disabled-text-color);
        cursor: not-allowed;
      }
      .dh-textarea__inner {
        background-color: var(--dh-disabled-bg-color);
        box-shadow: 0 0 0 1px var(--dh-disabled-border-color) inset;
        color: var(--dh-disabled-text-color);
        -webkit-text-fill-color: var(--dh-disabled-text-color);
        cursor: not-allowed;
      }
    }
    &.is-prepend {
      >.dh-input__wrapper {
        border-top-left-radius: 0;
        border-bottom-left-radius: 0;
      }
    }
    &.is-append {
      >.dh-input__wrapper {
        border-top-right-radius: 0;
        border-bottom-right-radius: 0;
      }
    }
  }
  
  .dh-input--large {
    --dh-input-height: var(--dh-component-size-large);
    font-size: 14px;
    .dh-input__wrapper {
      padding: 1px 15px;
      .dh-input__inner {
        --dh-input-inner-height: calc(var(--dh-input-height, 40px) - 2px);
      }
    }
  
  }
  .dh-input--small {
    --dh-input-height: var(--dh-component-size-small);
    font-size: 12px;
    .dh-input__wrapper {
      padding: 1px 7px;
      .dh-input__inner {
        --dh-input-inner-height: calc(var(--dh-input-height, 24px) - 2px);
      } 
    }
  }
  .dh-input__prefix, .dh-input__suffix {
    display: inline-flex;
    white-space: nowrap;
    flex-shrink: 0;
    flex-wrap: nowrap;
    height: 100%;
    text-align: center;
    color: var(--dh-input-icon-color, var(--dh-text-color-placeholder));
    transition: all var(--dh-transition-duration);
  }
  .dh-input__prefix {
    >:first-child {
      margin-left: 0px !important;
    }
    >:last-child {
      margin-right: 8px !important;
    }
  }
  .dh-input__suffix {
    >:first-child {
      margin-left: 8px !important;
    }
    >:last-child {
      margin-right: 0px !important;
    }
  }
  .dh-input__prepend, .dh-input__append {
    background-color: var(--dh-fill-color-light);
    color: var(--dh-color-info);
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 100%;
    border-radius: var(--dh-input-border-radius);
    padding: 0 20px;
    white-space: nowrap;
  }
  .dh-input__prepend {
    border-right: 0;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    box-shadow: 1px 0 0 0 var(--dh-input-border-color) inset,0 1px 0 0 var(--dh-input-border-color) inset,0 -1px 0 0 var(--dh-input-border-color) inset;
  
  }
  .dh-input__append {
    border-left: 0;
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
    box-shadow: 0 1px 0 0 var(--dh-input-border-color) inset,0 -1px 0 0 var(--dh-input-border-color) inset,-1px 0 0 0 var(--dh-input-border-color) inset;
    & >.dh-input__wrapper {
      border-top-left-radius: 0;
      border-bottom-left-radius: 0;
    }
  }
  
  .dh-input--textarea {
    position: relative;
    display: inline-block;
    width: 100%;
    vertical-align: bottom;
    font-size: var(--dh-font-size-base);
  }
  .dh-textarea__wrapper {
    position: relative;
    display: block;
    resize: vertical;
    padding: 5px 11px;
    line-height: 1.5;
    box-sizing: border-box;
    width: 100%;
    font-size: inherit;
    font-family: inherit;
    color: var(--dh-input-text-color, var(--dh-text-color-regular));
    background-color: var(--dh-input-bg-color, var(--dh-fill-color-blank));
    background-image: none;
    -webkit-appearance: none;
    box-shadow: 0 0 0 1px var(--dh-input-border-color, var(--dh-border-color)) inset;
    border-radius: var(--dh-input-border-radius, var(--dh-border-radius-base));
    transition: var(--dh-transition-box-shadow);
    border: none;
    &:focus {
      outline: none;
      box-shadow: 0 0 0 1px var(--dh-input-focus-border-color) inset;
    }
    &::placeholder {
      color: var(--dh-input-placeholder-color);
    }
  }
  .dh-input__wrapper {
    display: inline-flex;
    flex-grow: 1;
    align-items: center;
    justify-content: center;
    padding: 1px 11px;
    background-color: var(--dh-input-bg-color, var(--dh-fill-color-blank));
    background-image: none;
    border-radius: var(--dh-input-border-radius, var(--dh-border-radius-base));
    transition: var(--dh-transition-box-shadow);
    box-shadow: 0 0 0 1px var(--dh-input-border-color, var(--dh-border-color)) inset;
    &:hover {
      box-shadow: 0 0 0 1px var(--dh-input-hover-border-color) inset;
    }
    &.is-focus {
      box-shadow: 0 0 0 1px var(--dh-input-focus-border-color) inset;
    }
    .dh-input__inner {
      --dh-input-inner-height: calc(var(--dh-input-height, 32px) - 2px);
      width: 100%;
      flex-grow: 1;
      -webkit-appearance: none;
      color: var(--dh-input-text-color, var(--dh-text-color-regular));
      font-size: inherit;
      height: var(--dh-input-inner-height);
      line-height: var(--dh-input-inner-height);
      padding: 0;
      outline: none;
      border: none;
      background: none;
      box-sizing: border-box;
      &::placeholder {
        color: var(--dh-input-placeholder-color);
      }
    }  
    .dh-icon {
      height: inherit;
      line-height: inherit;
      display: flex;
      justify-content: center;
      align-items: center;
      transition: all var(--dh-transition-duration);
      margin-left: 8px;
    }
    .dh-input__clear, .dh-input__password {
      color: var(--dh-input-icon-color);
      font-size: 14px;
      cursor: pointer;
      &:hover {
       color: var(--dh-input-clear-hover-color);
      }
    }
  }
  
  